/**
 * cornet.js
 */

/**
 * cornetClass
 */
function cornetClass() {
	this.initialize.apply(this, arguments);
};

cornetClass.prototype = {

	/**
	 * initialize
	 */
	initialize : function() {
		this._tmp = {};
		this._params = null;
	},

	/**
	 * init
	 */
	init : function(params) {
		this._params = params;
		this.threadNav();
		this.projects();
		this.projectEdit();
		this.userEdit();
	},

	/**
	 * jstrDecode
	 */
	jstrDecode : function(rtxt) {
		if(rtxt.indexOf('%u') < 0 && rtxt.indexOf('%') > -1) return decodeURIComponent(rtxt);
		return rtxt;
	},

	/**
	 * removeTmp
	 */
	removeTmp : function() {
		this._tmp = {};
	},

	/**
	 * projects
	 */
	projects : function() {
		if(!$(this._params.projects).length) return;
		$(this._params.projects + ' li:gt(0)').addClass('dropdown').hide();
		$(this._params.projects).mouseover(
			$.scope(this, function(e, i) {
				$(this._params.projects + ' .dropdown').show();
			})
		).mouseout(
			$.scope(this, function(e, i) {
				$(this._params.projects + ' .dropdown').hide();
			})
		);
	},

	/**
	 * threadNav
	 */
	threadNav : function() {
		if(!$(this._params.listview).length) return;
		$(this._params.listview).find('li ul').hide();
		$(this._params.listview).find('li a.parent').removeClass('close').addClass('open').toggle(
			function() {
				$(this).closest('li').find('ul').slideDown('fast');
				$(this).removeClass('open').addClass('close');
			},
			function() {
				$(this).closest('li').find('ul').slideUp('fast');
				$(this).removeClass('close').addClass('open');
			}
		);
	},

	/**
	 * projectEdit
	 */
	projectEdit : function() {
		if(!$(this._params.editprojects).length) return;
		$(this._params.editprojects).find('section form').hide();
		$(this._params.editprojects).find('section h1 a').removeClass('open').addClass('close').toggle(
			function() {
				$(this).closest('section').find('form').slideDown();
				$(this).removeClass('close').addClass('open');
			},
			function() {
				$(this).closest('section').find('form').slideUp();
				$(this).removeClass('open').addClass('close');
			}
		);
	},

	/**
	 * userEdit
	 */
	userEdit : function() {
		this._params.editprojects = this._params.editusers;
		this.projectEdit();
	},

	/**
	 * addFiles
	 */
	addFiles : function(ev) {
		var dd = $(ev).closest('dd');
		var dl = $(dd).closest('dl');
		var eq = $(dd).index('dd');
		var dt = $(dl).find('dt:eq(' +eq+ ')');
		eq++;
		$(dt).clone().insertAfter($(dd));
		$(dd).clone().insertAfter($(dl).find('dt:eq(' + eq + ')'));
		$(dd).find('a').remove();
		if(eq > this._params.files.max) $(dl).find('dd a').remove();
	}
}


/**
 * instance
 */
var cornet;
$(function() {
	cornet = new cornetClass();
	cornet.init({
		projects: '#siteheader nav ul',
		listview: '#threads ul',
		editprojects: 'article.projects',
		editusers: 'article.users',
		files: { max: 5 }
	});
});

